package arithmetic.letcode;

import java.util.Scanner;

/**
 * 题目描述
 *
 * 为了充分发挥GPU算力，需要尽可能多的将任务交给GPU执行，现在有一个任务数组，数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。
 * 假设GPU最多一次执行n个任务，一次执行耗时1秒，在保证GPU不空闲情况下，最少需要多长时间执行完成。
 * 输入描述
 * 第一个参数为GPU一次最多执行的任务个数，取值范围[1，10000]
 * 第二个参数为任务数组长度，取值范围[1,10000]
 * 第三个参数为任务数组，数字范围[1，10000]
 *
 * 输出描述
 * 执行完所有任务最少需要多少秒。
 */
public class GPUTime {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        while(sc.hasNext()){
            int k = sc.nextInt();
            int len = sc.nextInt();
            String[] split = sc.nextLine().split(" ");

            int[] ints = new int[len];
            for(int i = 0; i < len; i++){
                ints[i] = Integer.parseInt(split[i]);
            }

            int remain = 0;
            int time = 0;
            for(int i : ints){  //关键对变量 remain 的处理
                if(remain + i > k) remain = remain + i - k;
                else remain = 0;
                time++;
            }
            while(remain > 0){
                remain -= k;
                time++;
            }
            System.out.println(time);
        }
    }
}
